import axios from "axios";
import {showFailToast} from "vant";
const api_rul = import.meta.env.VITE_APP_API_URL

const request = axios.create({
    timeout: 30000,
    withCredentials: true,
})


// 请求拦截器
request.interceptors.request.use(
    (config) => {
        // 在发送请求之前做些什么
        // 例如，可以在请求头中添加 token
        // config.headers['Authorization'] = 'Bearer ' + getToken();
        return config;
    },
    (error) => {
        // 对请求错误做些什么
        showFailToast('请求失败，请稍后重试');
        return Promise.reject(error);
    }
);

// 响应拦截器
request.interceptors.response.use(
    (response) => {
        // 对响应数据做些什么
        if (response?.data?.code === 40100) {
            showFailToast("请先登录")
            window.location.href = "/login"

        }


        return response;
    },
    (error) => {
        // 对响应错误做些什么
        if (error.response) {
            showFailToast("数据获取失败,请稍后重试")
            // 请求已发出，但服务器响应的状态码不在 2xx 范围内
        } else if (error.request) {
            // 请求已发出，但没有收到响应
            showFailToast('网络错误，请检查你的网络连接');
        } else {
            // 其他错误
            showFailToast('请求失败，请稍后重试');
        }
        return Promise.reject(error);
    }
);

export default request